#include "stdio.h"

//数据结构体
struct data {
    double a,b,d;
    char f;
} shu;

//计算函数群
double _jia (double a,double b) {
    double d;
    d = a + b;
    return d;
}
double _jian (double a,double b) {
    double d;
    d = a - b;
    return d;
}
double _chen (double a,double b) {
    double d;
    d = a * b;
    return d;
}
double _chu (double a,double b) {
    double d;
    d = a / b;
    return d;
}

//输入函数
struct data _input () { //重启输入
    printf("输入公式：");
    scanf("%lf%c%lf",&shu.a,&shu.f,&shu.b);
}
struct data _input2 () { //继续输入
    printf("输入公式：%g",shu.a);
    scanf("%c%lf",&shu.f,&shu.b);
}

//输出函数
int _print() {
    printf("%g %c %g = %g\n",shu.a,shu.f,shu.b,shu.d);
    return 0;
}

//选择函数
int _xuan () {
    switch(shu.f) {
        case '+': shu.d = _jia(shu.a,shu.b); break;
        case '-': shu.d = _jian(shu.a,shu.b); break;
        case '*': shu.d = _chen(shu.a,shu.b); break;
        case '/': shu.d = _chu(shu.a,shu.b); break;
        default : printf("ERROR!\n");
    }
    return 0;
}

//继续函数
int _pan () {
    int i;
    printf("\n重启计算输入1，继续计算输入2，退出输入0：");
    scanf("%d",&i);
    return i;
}

//主循环函数
int _no1 (){
    _input();
    _xuan();
    _print();
    return 0;
}

//辅助循环函数
int _no2 () {
    shu.a = shu.d;
    shu.f = shu.b = shu.d = 0;
    _input2();
    _xuan();
    _print();
}

int main(){
    int i = 1;
    char c;//清除缓冲区
    _no1();
    do {
        i  = _pan();
        if (i == 1) _no1();
        if (i == 2) {
            while((c = getchar()) != EOF && c != '\n');
            _no2();
        }
    } while (i);
    return 0;
}